package main

import "fmt"

// 求和操作
// 函数名是getSum,参数是空,
// getSum函数的返回值是一个函数,这个函数参数是int类型,返回值也是int类型
func getSum() func(int) int {
	var sum int = 0		// 这个变量的值是保留状态,反复使用的感觉
	return func(i int) int {	// 返回的匿名函数 + sum(也就是匿名函数以外的变量),组成的一个整体
		sum = sum + i
		return sum
	}
}
func main() {
	f := getSum()
	fmt.Println(f(1))	// 1
	fmt.Println(f(2))	// 3
	fmt.Println(f(3))	// 6
	fmt.Println(f(4))	// 10
}
